SAS学习之产生新变量 您所在的位置:网站首页 sas 添加序号 SAS学习之产生新变量

SAS学习之产生新变量

2023-12-15 10:01| 来源: 网络整理| 查看: 265

1.直接用表达式或函数直接产生新变量

格式为:变量名=表达式或函数

例:

data a1; input wt ht; bmi=wt/(ht/100)**2; /*“**”表示幂次方的意思*/ rbmi=sqrt(bmi); obesity=(bmi>=28); city="北京"; date="02apr2013"d; format data yymmdd10.; cards; 60 170 55 166 73 161 ; proc print; run;

新变量得写在input和cards之间。

在SAS中日期常量都要写成“日月年”d这种格式(月是英文的前三个字母,年可以是2位或4位)

2.利用if-then语句产生新变量

格式为:

if 表达式 then 新变量=;

else 新变量=;

data lx; input id lx$; lx1=lx in ("有效","显效","痊愈"); if lx in ("有效","显效","痊愈") then lx2="有效";else lx2="无效"; cards; 1 显效 2 有效 3 无效 4 痊愈 ; proc print; run;

3.利用retain语句和累加语句产生新变量

SAS在读取数据的时候是有遗忘症的,它每读完一条观测返回到data语句的时候,会忘掉刚才读取的数值。。

retain语句和累加语句可以使SAS留住上次的记忆不再重复读取,retain语句的基本格式:

retain 变量 ;

作用是生成一个变量,指定初始值,并保留该变量每次计算的结果。如果没有指定初始值,默认初始值为缺失值。

retain语句可以指定一个或多个变量,例如:

retain a 21; (指定a的初始值为21)

retain year 2001 total 0;(指定year的初始值为2001,total的初始值为0)

累加语句的基本格式是:变量+表达式;

year+1;(默认year=0,year+1产生的结果就是year=1)

total+amount;(amount变量必须在前面已经指定了,此时相当于total=total+amount)

data fsh; input amount; retain year 2000 year+1; total+amount; cards; 100 200 300 ; proc print; run;

结果如上图所示

4.使用do循环语句产生新变量

do 变量=初始值 to 最终值 ;

3A3语句;

end;

使用do循环时要注意避免以下两个错误:1)忘记写output;语句,这导致SAS只能读取最后一个数,因为前面的数没有通过SAS显示;2)忘记写end;语句,此时SAS找不到循环结束的标志,给不出结果。

5.指定新变量的类型与长度

SAS中主要是用length语句来指定新变量的长度与类型,格式为:length 变量1 长度1 变量2 长度2……;

该语句的意思是对变量指定一个长度,如果是字符型变量,还需要加上$符号。字符变量的长度是由第一个遇到的值的长度决定的,而且字符变量一旦产生,它的长度就无法改变。

length语句一定要在新变量产生之前就设定好,否则是不起作用的。

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有